﻿
using RXY_Mall.Application.User.Dto;
using RXY_Mall.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RXY_Mall.Application.User
{
    public interface IUserService
    {
        #region 用户
        Task<Response<bool>> AddUser(UserAddInput input);

        /// <summary>
        /// 会员列表
        /// </summary>
        /// <param name="iDisplayStart"></param>
        /// <param name="iDisplayLength"></param>
        /// <param name="dateMin"></param>
        /// <param name="dateMax"></param>
        /// <param name="userName"></param>
        /// <param name="realName"></param>
        /// <param name="status"></param>
        /// <param name="totalCount"></param>
        /// <returns></returns>
        IPagedList<UserList> GetUsersByPage(int iDisplayStart, int iDisplayLength, string dateMin, string dateMax, string userName, string userNo, int status, int grade, int isVip, out int totalCount);

        /// <summary>
        /// 会员列表
        /// </summary>
        /// <param name="date_start"></param>
        /// <param name="date_end"></param>
        /// <param name="user_name"></param>
        /// <param name="user_no"></param>
        /// <param name="status"></param>
        /// <param name="grade"></param>
        /// <param name="page_index"></param>
        /// <param name="page_size"></param>
        /// <param name="shop_id"></param>
        /// <returns></returns>
        Response<IPagedList<UserList>> GetUsersByPage(string date_start, string date_end, string user_name, string user_no, int status, int grade, int page_index = 1, int page_size = 20, int shop_id = -1);

        /// <summary>
        /// 重置登录密码
        /// </summary>
        bool SetUserPwd(int manageId, int userId, string newPassword);

        /// <summary>
        /// 禁用/启用
        /// </summary>
        /// <param name="manageId"></param>
        /// <param name="id"></param>
        /// <param name="isUse"></param>
        /// <returns></returns>
        bool SetIsUse(int manageId, int id, int isUse);

        /// <summary>
        /// 设为趣卡会员
        /// </summary>
        /// <param name="manageId"></param>
        /// <param name="id"></param>
        /// <param name="isVip"></param>
        /// <returns></returns>
        Task<bool> SetVip(int manageId, int id, int isVip);
        #endregion
    }
}
